/* 度度熊回家
一个数轴上共有N个点，第一个点的坐标是度度熊现在位置，第N-1个点是度度熊的家。现在他需要依次的从0号坐标走到N-1号坐标。
但是除了0号坐标和N-1号坐标，他可以在其余的N-2个坐标中选出一个点，并直接将这个点忽略掉，问度度熊回家至少走多少距离？
输入描述:
输入一个正整数N, N <= 50。
接下来N个整数表示坐标，正数表示X轴的正方向，负数表示X轴的负方向。绝对值小于等于100
输出描述:
输出一个整数表示度度熊最少需要走的距离。

输入例子:
4
1 4 -1 3
输出例子:
4
*/
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <cmath>
const int INF = 2 << 20;
using namespace std;
int n, m, minn;

struct data
{
    int x;
    bool flag;// 标记点，被标记的点被忽略
} a[111];

int solve()
{
    int sum = 0;
    for (int i = 1; i < n; i ++)
        if (!a[i].flag)
        {
            // 往前查找没有被标记的点
            for (int j = i - 1; j >= 0; j --)
                if (!a[j].flag)
                {
                    sum += abs(a[i].x - a[j].x);
                    break;
                }
        }
    return sum;
}

int main()
{
    while (~scanf("%d", &n))
    {
        for (int i = 0; i < n; i ++)
        {
            scanf("%d", &a[i].x);
            a[i].flag = 0;
        }
        minn = INF;
        // 起点和终点必须要走
        for (int i = 1; i < n - 1; i ++)
        {
            a[i].flag = 1;
            minn = min(minn, solve());
            a[i].flag = 0;
        }
        printf("%d\n", minn);
    }
    return 0;
}
